1. Field of the Invention
Embodiments of the present invention generally relate to methods for message suppression in rule based expert system. More particularly, embodiments of the present invention generally relate to a method for message suppression in rule based expert systems for process operations.
2. Description of the Related Art
Expert systems are computerized tools designed to enhance the quality and availability of knowledge required by decision makers in a wide range of industries. Expert systems augment conventional programs such as databases, word processors, and spreadsheet analysis. Typically, a model based expert system is based on fundamental knowledge of the design and function of an object, whereas a rule-based expert system is based on a set of rules that a human expert would follow in diagnosing a problem.
Rule-based expert systems generally contain two components: (1) a working memory which represents knowledge of the current state of the system being monitored; and (2) a rule base which contains expert knowledge in the form of “condition-action” rules, also known as “if-then” rules. The condition part of each rule determines whether the rule can be applied based on the current state of the working memory. For example, the condition part of each rule can contain relations that are applied to objects or groups of object slots or tests. Within the object slots math expressions and arithmetic relations can be used, such as greater than (>), less than (<), equal to (=), greater than or equal to (>=), less than or equal to (<=), and not equal to (/=).
The action part of a rule contains executable commands. In other words, the condition part of each rule determines whether (or “if”) the rule can be applied based on the current state of the working memory; and the action part of a rule contains a conclusion (“then”) which can be drawn from the rule when the condition is satisfied. A rule either recognizes some event or combination of events, or performs some correlation management function. Thus, a rule may assert, resolve, or close some other correlations. Creating a correlation may invoke some defined function or script or send a notification to external systems.
An expert system can have an inference engine that evaluates the rules. During rule evaluation, the inference engine evaluates all necessary preconditions leading to a rule. In the case of conjunctive preconditions, the inference engine concludes a rule to be “TRUE” when all the preconditions of the rule have been satisfied or met. More than one rule can lead to the same conclusion. Usually the rules leading to the same conclusion are disjunctive, connected by a logical OR expression for conclusion evaluation. As long as at least one rule leading to a conclusion is true, then the inference engine will set the conclusion to be TRUE. Otherwise, the conclusion will be set to be FALSE.
In practice, when an object (rule, precondition, or conclusion) is considered true it means that the attribute named “status” of that object is set to logical TRUE. A change of a rule's status or a conclusion's status to TRUE can trigger a display of a text message. Since more than one rule can lead to a conclusion it is advantageous to combine rule text (its name or its text attribute) and conclusion text (its name or its text attribute) into one message, for instance in a form “rule text: conclusion text” making it clear which rule firing caused the message display.
In the case of embedded rules, when a first rule has to be TRUE in order for a second rule to be TRUE and so on and so forth, the display of superfluous messages can occur. This occurrence is also known as message overload. The message overload is not limited to embedded rules, it can occur anytime when a message identifying the root cause of a problem is identified but related messages of lower importance flood the display.
Message overload is a concern of expert systems because messages of high importance are embedded amongst messages of lower importance although also TRUE. For example, a first rule detects a small problem which may not require any action and a second rule detects a bigger related problem that requires immediate attention. If both rules cause a display of a corresponding message, the first rule's conclusion is superfluous or redundant to the second rule's conclusion. If several of these kinds of superfluous messages are displayed simultaneously, the output of the system is compromised because an operator of the expert system can not readily determine a priority of the many messages displayed.
One approach to solving the message overload problem includes rule nesting. In rule nesting, the second rule is added as a FALSE precondition of the first rule, preventing the first rule from sending a displayed message when the second rule becomes TRUE. The disadvantage of such an arrangement is that the first rule is forced to an incorrect FALSE status, when in fact, the first rule would be TRUE without the nested precondition. If some other rule or rules depend on the first rule, that induced error propagates throughout the expert system. In a large expert system, the induced errors can compromise the integrity (i.e. correctness) of the system. Further, there may be a brief nuisance period, such as several minutes, after the second rule evaluates TRUE during which both messages are displayed until the inference engine re-evaluates the first rule.
Another approach to solving the message overload problem involves the classification of messages. In a message classification system, messages are assigned a priority, a different display destination, or a similar attribute. The disadvantage with this approach is that the message classification is permanent. Once a message is classified during the creation of the rule, the message is directed to secondary screens, log files, or reports which are less monitored. As a result, these classified or re-directed messages can be overlooked, and although the messages may not be a high priority, they still provide valuable information which could be missed. In other words, when the priority designation is assigned during rule creation, the priority of the rule will not change during rule evaluation and lower priority messages will never be displayed on a primary console. Another method, sorting the messages by priority with low priority messages forced to the bottom of the display, has the same disadvantages.
There is a need, therefore, for a method to suppress redundant or superfluous messages without changing the truthfulness and/or nature of a rule and without permanently directing the messages to a secondary display which are often overlooked or not monitored.